import java.util.Stack;

/**
 * @author : zzr
 * @description :出栈入栈序列
 * pushA序列入栈 能否以pushA序列出栈
 * @date :
 */
public class Test5 {
    public boolean IsPopOrder (int[] pushA, int[] popA) {
        Stack<Integer> stack = new Stack<>();
        int j = 0; //j为popA遍历的下标
        for (int i = 0; i < pushA.length; i++) {
            //遍历pushA，将pushA中的元素入栈
            stack.push(pushA[i]);
            while (!stack.empty() && j < popA.length && stack.peek() == popA[j]) {
                //如果pushA压入栈的元素与popA中的 j 下标的元素相同，则弹出
                stack.pop();
                j++;//j向后遍历
            }
        }
        return stack.empty();
    }
}
